home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-17 | 6.0 KB | 161 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: FWCyPart.h
- // Release Version: $ ODF 2 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
- //
- // Support for FW_OCyberPartExtension. Wraps it so that the developer
- // never needs to deal with SOM. Also implements basic recipes.
- //
-
- #ifndef FWCYPART_H
- #define FWCYPART_H
-
- #ifndef FWEVENTH_H
- #include "FWEventH.h"
- #endif
-
- #ifndef SLCYPART_H
- #include "SLCyPart.h"
- #endif
-
- #ifndef SOM_ODF_FW_OCyberPartExtension_xh
- #include "SLCyPart.xh"
- #endif
-
- #ifndef SLODTHRD_H
- #include "SLODThrd.h"
- #endif
-
- #ifndef SOM_CyberItem_xh
- #include <CyberItem.xh>
- #endif
-
- #ifndef FWACQUIR_H
- #include "FWAcquir.h"
- #endif
-
- //========================================================================================
- // Forward Class Declarations
- //========================================================================================
-
- class FW_CPart;
- class FW_CEventDispatcher;
- class FW_CThread;
- class FW_CCyberdogHelper;
- class CyberServiceMenu;
-
- //========================================================================================
- // Typedefs and Enums
- //========================================================================================
-
- typedef FW_TAcquiredODRefCntObject<ODF_FW_OCyberPartExtension> FW_CAcquiredODFCyberPartExtension;
- typedef FW_TOrderedCollection<FW_CThread> FW_CThreadsCollection;
-
- enum { FW_kUseCyberMenus = true, FW_kStandardMenus = false };
- enum { FW_kUseNavigator = true, FW_kStandardPart = false };
-
- //========================================================================================
- // Cyberdog Utilities
- //========================================================================================
-
- FW_CCyberdogHelper* FW_SupportCyberdogIfPresent (Environment* ev, FW_CPart* part, FW_Boolean cymenus, ODCommandID cybase, FW_Boolean cynav);
-
- //========================================================================================
- // Class FW_CCyberdogCallbacks
- //========================================================================================
-
- class FW_CCyberdogCallbacks: public FW_SCyberPartExtensionCallbacks
- {
- public:
- FW_DECLARE_AUTO (FW_CCyberdogCallbacks)
-
- FW_CCyberdogCallbacks (FW_CPart* part);
- virtual ~FW_CCyberdogCallbacks ();
- void Initialize (Environment* ev);
-
- // Cyberdog Callbacks
- virtual void HandleOpenCyberItem (Environment* ev, CyberItem* item, ODPart* openerPart, ParameterSet* parameters);
- virtual void DoSetCyberItem(Environment* ev, CyberItem* newItem, ParameterSet* parameters);
- virtual ODBoolean DoCanShowCyberItem(Environment* ev, CyberItem* item);
- virtual void DoShowCyberItem (Environment* ev, CyberItem* item);
- virtual ODWindow* DoGetCyberItemWindow (Environment* ev, CyberItem* item);
- virtual ODBoolean DoIsCyberItemSelected (Environment* ev, ODFrame* frame);
- virtual void DoAcquireSelectedCyberItems (Environment* ev, ODFrame* frame, CyberItemList* items);
- virtual ODBoolean DoIsURLSelected (Environment* ev, ODFrame* frame);
- virtual void DoGetSelectedURL (Environment* ev, ODFrame* frame, FW_CString & url);
- virtual ODBoolean HandleCyberCommand (Environment* ev, long commandSuite, long command, ODFrame* frame, somToken parameters);
- enum { FW_kHandledCyberCommand = true, FW_kContinueCyberCommand = false };
-
- // Accessors & Utilities
- FW_CPart* GetPart() { return fPart; }
- CyberPartExtension* GetExtension (Environment* ev);
- FW_Boolean CyberdogIsLoaded (Environment* ev);
- private:
- static ODExtension* CreateCyberExtension (Environment* ev, FW_CPart *part, const char* name, void* self);
- private:
- FW_CAcquiredODFCyberPartExtension fExtension;
- FW_CPart* fPart;
- };
-
- //========================================================================================
- // Class FW_CCyberdogHelper
- //========================================================================================
-
- class FW_CCyberdogHelper: public FW_CCyberdogCallbacks, public FW_MEventHandler {
- public:
- FW_DECLARE_AUTO (FW_CCyberdogHelper)
- FW_CCyberdogHelper (FW_CPart* part);
- ~FW_CCyberdogHelper ();
-
- // Configure Cyberdog support. Do you want to show up in the "Navigator" window?
- // Do you want to display the standard Cyberdog menus?
- void Initialize (Environment* ev, FW_Boolean cymenus, ODCommandID cybase, FW_Boolean cynav);
-
- // Threads Support
- void SetLoadCyberItemThreadProcedure (FW_ThreadProcedure loadCyberItem, void* parameters);
- virtual void DoSetCyberItem (Environment* ev, CyberItem* newItem, ParameterSet* parameters);
-
- // CloseCyberDraftWindow & Cyberdog Menus Support
- virtual FW_Handled DoMenu (Environment* ev, const FW_CMenuEvent& event);
- virtual FW_Handled DoAdjustMenus (Environment *ev, FW_CMenuBar* menuBar, FW_Boolean hasMenuFocus, FW_Boolean isRoot);
-
- // Accessors
- CyberItem* GetCyberItem (Environment* ev);
- CyberSession* GetCyberSession (Environment* ev);
- //CyberPartExtension* AcquireCyberExtension();
- CyberServiceMenu* GetCyberServiceMenu() const { return fCyberServiceMenu; }
-
- //
- // Utilities
- //
- ODPart* AcquireContainingNavigator (Environment* ev);
- CyberItem* InternalizeCyberItem (Environment* ev, FW_OSink* sink, Boolean reload);
- void ExternalizeCurrentCyberItem (Environment* ev, FW_OSink* sink);
-
- //
- // Navigator support
- //
- virtual void HandleOpenCyberItem (Environment* ev, CyberItem* item, ODPart* openerPart, ParameterSet* parameters);
- CyberProgressBroadcaster* MakeCyberProgressBroadcaster (Environment* ev, short mode);
- virtual void DoCyberAbort (Environment *ev, CyberProgressBroadcaster* broadcaster);
- static void PrivCyberAbort (CDAbortProcMessage message, CyberProgressBroadcaster* broadcaster, Ptr self_Mixin);
- private:
- Handle fCyberdogMenuHandle;
- CyberServiceMenu* fCyberServiceMenu;
- ODCommandID fCyberCommands;
- FW_Boolean fUseNavigator;
- //
- // Threads Support
- //
- FW_ThreadProcedure fLoadCyberItemThreadProcedure;
- void* fLoadCyberItemThreadParameters;
- FW_CThreadsCollection fThreads;
- };
-
- #endif // FWCYPART_H
-
-